/* 
 * UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE
 * CENTRO DE TECNOLOGIA
 * DEPARTAMENTO DE ENGENHARIA DE COMPUTA��O E AUTOMA��O
 * PROJETO E DESENVOLVIMENTO DE SOFTWARE
 * 
 * BACO SYSTEM
 * CLASSE: PersistenciaAlgoritmo
 * VERS�O ORIGINAL: Caroline Albuquerque Dantas Silva
 * MODIFICA��ES: ---
 * */
package bacoopc.persistencia;

import bacoopc.gui.entidades.AlgoritmoInterface;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class PersistenciaAlgoritmo extends Persistencia {

    public PersistenciaAlgoritmo() {
        super();
    }

    /**
     * Insere um algoritmo no banco de dados
     *
     * @param algoritmo o algoritmo a ser inserido na interface
     */
    public void inserirAlgoritmo( AlgoritmoInterface algoritmo ) {
        this.inserirAlgoritmo(algoritmo.getNome(), algoritmo.getPath(),
                algoritmo.getClassName());
    }

    //por favor, passar o objeto "algoritmo"
    public int inserirAlgoritmo( String name, String path , String nomeClasse ) {
        QueryManager manager = QueryManager.getQueryManager();

        try {
            PreparedStatement ps = manager.getPreparedStatement(con, "algoritmo.insert");
            ps.setString( 1 , name ) ;
            ps.setString( 2 , path ) ;
            ps.setString( 3 , nomeClasse ) ;
            return ps.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return 0;
    }

    //por favor, passar o objeto "algoritmo"
    public int excluirAlgoritmo(int id) {
        QueryManager manager = QueryManager.getQueryManager();

        try {
            PreparedStatement ps = manager.getPreparedStatement(con, "algoritmo.delete");
            ps.setInt(1, id);
            return ps.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return 0;
    }

    //por favor, passar o objeto "algoritmo"
    public int alterarAlgoritmo(int id, String name, String path) {
        QueryManager manager = QueryManager.getQueryManager();

        try {
            PreparedStatement ps = manager.getPreparedStatement(con, "algoritmo.update");
            ps.setString(1, name);
            ps.setString(2, path);
            ps.setInt(3, id);
            return ps.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return 0;
    }

    public ResultSet consultarAlgoritmos() {
        QueryManager manager = QueryManager.getQueryManager();

        try {
            PreparedStatement ps = manager.getPreparedStatement(con, "algoritmo.query");
            return ps.executeQuery();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return null;
    }
}
